package com.syh.jn.scm.dto.downstream.finance;

import com.syh.jn.scm.dto.downstream.purchase.DownPurchaseOrderVo;
import com.syh.jn.scm.dto.downstream.purchase.DownPurchaseReturnOrderVo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * Date:2018/7/19
 * Author:Clown
 * 下游对账单STO;
 */
@Data
public class DownStatementAccountBillSto implements Serializable {
  /**
   * 录单人id
   */
  @NotNull(message = "录单人id不能为空")
  private Long brokerageId;
  /**
   * 归属于那个服务商
   */
  @NotNull(message = "归属id不能为空")
  private Long businessEntityId;
  /**
   * 对账金额
   */
  private BigDecimal price;
//  /**
//   * 下游采购单列表
//   */
//  private List<DownPurchaseOrderVo> purchaseOrderVoList;
//  /**
//   * 下游采购退货单列表
//   */
//  private List<DownPurchaseReturnOrderVo> purchaseReturnOrderVoList;
//  /**
//   * 费用单列表
//   */
//  private List<DownCostBillVo> costBillVoList;
//  /**
//   * 收入单列表
//   */
//  private List<DownIncomeBillVo> incomeBillVoList;
  /**
   * 客户id
   */
  private Long customerId;
  /**
   * 对账单关联单据明细
   */
  @NotEmpty(message = "对账单关联单据明细不能为空")
  private List<DownStatementAccountBillItemSto> items;

  @Data
  @NoArgsConstructor
  @AllArgsConstructor
  public class DownStatementAccountBillItemSto implements Serializable {
    /**
     * 来源单类型 0 采购 1 采购退货单 4 收入单 5 费用单
     */
    @NotNull(message = "来源单类型不能为空")
    private Short sourceType;
    /**
     * 来源单号
     */
    @NotEmpty(message = "来源单号不能为空")
    private String sourceCode;
    /**
     * 来源单id
     */
    @NotNull(message = "来源单id不能为空")
    private Long sourceId;

  }

}


